package gui;

import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.Dimension;
import javax.swing.JTable;
import java.awt.FlowLayout;
import javax.swing.table.DefaultTableModel;
import javax.swing.ListSelectionModel;
import javax.swing.JScrollPane;
import java.awt.Color;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.SwingConstants;

@SuppressWarnings("serial")
public class PanelEstadisticas extends JPanel {

	/**
	 * Declara publico los botones accesibles desde el control de eventos
	 * central.
	 */
	public JButton btnRegresar;
	public JButton btnSalir;

	private JTable tabla;
	private DefaultTableModel model;

	/** Construye  */
	public PanelEstadisticas() {
		setOpaque(false);
		setPreferredSize(new Dimension(822, 520));
		setLayout(null);

		ImageIcon imgPanel = new ImageIcon("img/paneles/panelPergamino.png");

		PanelImagen panel = new PanelImagen(imgPanel.getImage());
		panel.setBounds(340, 12, 446, 458);
		add(panel);
		panel.setLayout(null);

		JPanel panelBotones = new JPanel();
		FlowLayout flowLayout = (FlowLayout) panelBotones.getLayout();
		flowLayout.setHgap(50);
		panelBotones.setOpaque(false);
		panelBotones.setBounds(41, 365, 366, 69);
		panel.add(panelBotones);

		btnRegresar = new JButton("Regresar");
		btnRegresar.setSelectedIcon(new ImageIcon(
				"img/paneles/botonGeneralPresionado.png"));
		btnRegresar.setPressedIcon(new ImageIcon(
				"img/paneles/botonGeneralPresionado.png"));
		btnRegresar.setBorder(null);
		btnRegresar.setDefaultCapable(false);
		btnRegresar.setContentAreaFilled(false);
		btnRegresar.setBorderPainted(false);
		btnRegresar.setForeground(Color.ORANGE);
		btnRegresar.setHorizontalTextPosition(SwingConstants.CENTER);
		btnRegresar.setIcon(new ImageIcon("img/paneles/botonGeneral.png"));
		btnRegresar.setPreferredSize(new Dimension(100, 25));
		panelBotones.add(btnRegresar);
		
				btnSalir = new JButton("Salir");
				btnSalir.setSelectedIcon(new ImageIcon(
						"img/paneles/botonGeneralPresionado.png"));
				btnSalir.setPressedIcon(new ImageIcon(
						"img/paneles/botonGeneralPresionado.png"));
				btnSalir.setBorder(null);
				btnSalir.setDefaultCapable(false);
				btnSalir.setContentAreaFilled(false);
				btnSalir.setBorderPainted(false);
				btnSalir.setForeground(Color.ORANGE);
				btnSalir.setHorizontalTextPosition(SwingConstants.CENTER);
				btnSalir.setIcon(new ImageIcon("img/paneles/botonGeneral.png"));
				btnSalir.setPreferredSize(new Dimension(100, 25));
				panelBotones.add(btnSalir);

		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setEnabled(false);
		scrollPane.setOpaque(false);
		scrollPane.setBounds(61, 66, 318, 287);
		panel.add(scrollPane);

		tabla = new JTable();
		tabla.setBackground(Color.WHITE);
		tabla.setRowSelectionAllowed(false);
		tabla.setGridColor(Color.BLACK);
		tabla.setEnabled(false);
		tabla.setOpaque(false);
		scrollPane.setViewportView(tabla);
		tabla.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		model = new DefaultTableModel(new Object[][] {}, new String[] {
				"Puesto", "Jugador", "Ganadas", "Perdidas", "Total" }) {
			boolean[] columnEditables = new boolean[] { false, true, true,
					true, true };

			public boolean isCellEditable(int row, int column) {
				return columnEditables[column];
			}
		};
		tabla.setModel(model);

		JLabel lblPuntos = new JLabel("Puntos");
		lblPuntos.setFont(new Font("Dialog", Font.BOLD, 18));
		lblPuntos.setBounds(179, 29, 71, 22);
		panel.add(lblPuntos);
		tabla.getColumnModel().getColumn(0).setPreferredWidth(60);
		tabla.getColumnModel().getColumn(1).setPreferredWidth(120);
		tabla.getColumnModel().getColumn(2).setPreferredWidth(90);
		tabla.getColumnModel().getColumn(3).setPreferredWidth(90);
		tabla.getColumnModel().getColumn(4).setPreferredWidth(60);
	}

	// Asignar control de eventos
	public void setActionListener(ControlCentral controlCentral) {
		btnRegresar.addActionListener(controlCentral);
		btnSalir.addActionListener(controlCentral);
	}

	public void borrarRegistros() {
		for (int i = 0; i < model.getRowCount(); i++)
			model.removeRow(i);
	}

	/** Carga la tabla con cada registro de las estadisticas. */
	public void addRegistro(String nombre, Integer partidasGanadas,
			Integer partidasJugadas) {

		Integer indice = model.getRowCount();
		Integer partidasPerdidas = partidasJugadas - partidasGanadas;
		Integer total = partidasGanadas - partidasPerdidas;
		indice++;

		model.addRow(new String[] { indice.toString(), nombre,
				partidasGanadas.toString(), partidasPerdidas.toString(),
				total.toString() });
	}

}
